The present invention deals with accessing saved data. More specifically, the present invention deals with an overall architecture for logically extending to the conventional transaction based application framework an Analytical View (AV) of business data and its supporting subsystems. The AV is based on a design time service referred to as model service, a programming model referred to as Business Intelligence Entities (BIEs) and a runtime service to provide a metadata driven information navigation functionality. The AV feature set addresses enterprise application requirements for analysis and decision support, and complements the transactional feature set currently provided by a conventional application framework.
Prior business database accessing systems focused primarily on the transactional portion of the data accessing system. In other words, transactional data (in non-aggregated form) was generated and saved to the database for later retrieval, reporting and viewing. In such systems, it was very difficult, to retrieve the data in such a way that a user could obtain an analytical view of the data. There were a variety of reasons that this type of viewing of the data was very difficult, and those are addressed below.
When designing software applications involving business transactions, application developers conventionally use a model driven architecture and focus on domain specific knowledge. The model driven architecture often includes business objects (or business entities) involved in the business transactions, such as business entities corresponding to customers, orders and products. These entities are modeled as objects following the paradigm of object orientation.
Each object encapsulates data and behavior of the business entity. For example, a Customer object contains data such as name, address and other personal information for a customer. The Customer object also contains programming code, for example, to create a new Customer, modify the data of an existing Customer and save the Customer to a database.
The object model also enables a description of relationships among the business entities modeled. For example, a number of Order objects can be associated with a Customer object representing the customer who makes those orders. This is known as an association relationship. Other types of relationships can also be described, such as compositions. An Order, for example, can be “composed of” a collection of OrderLines. These OrderLines do not exist independently of the Order they belong to. In this way, application developers convert the business logic associated with their applications to a set of models. Applications are built that implement this business logic, often using on-line transaction processing (OLTP).
Objects in an object model typically store their data in a relational database. To satisfy traditional reporting requirements, data is retrieved through the relational database using extraction, transformation and loading (ETL) processes. Data is retrieved, using these processes, into a staging area known as a data mart.
Currently, there is a knowledge gap between users who work on data marts and those who perform OLTP application development. Those who work on data marts do not normally have knowledge about how the object model is constructed. Therefore, when the data is retrieved through the ETL processes, the business logic (such as the relationships and classes, etc.) that was built into the object model is lost.
Traditionally, therefore, in order to facilitate user's reporting requirements, another model known as a dimensional model is built from the data in the data mart. The dimensional model includes a Fact table, that has measures, and associated tables, that are referred to as dimensions. Once the dimensional model is built, a user can specify a query against the dimensional model to obtain data in a somewhat logical fashion, even through the business logic built into the object model was lost.
This type of system, however, requires that a great deal of time be spent in reconstructing the business logic (or at least part of the business logic) to obtain the dimensional model. This can require companies that use such systems to maintain two groups of programmers, one to develop the business logic and implement it in an object model, and another to support the reporting structure required by the company. Of course, this duplication of personnel is both costly and inefficient.